package com.jzt.jk.open.api.manage.contracts.dto.response;

import com.jzt.jk.open.api.manage.infrastructure.util.tree.ITreeNode;
import lombok.Data;

import java.util.List;

/**
 * 作者：lizw <br/>
 * 创建时间：2021/01/22 11:27 <br/>
 */
@Data
public class MenuRes implements ITreeNode {
    /**
     * 菜单id
     */
    private Long id;

    /**
     * 上级菜单id
     */
    private Long parentId;

    /**
     * 是否被添加到父节点下
     */
    private boolean isBuild = false;

    /**
     * 菜单名称
     */
    private String name;

    /**
     * 菜单图标
     */
    private String icon;

    /**
     * 菜单路径
     */
    private String path;

    /**
     * 页面路径
     */
    private String pagePath;

    /**
     * 隐藏当前菜单和子菜单，0:隐藏，1:显示
     */
    private Integer hideMenu;

    /**
     * 隐藏子菜单，0:隐藏，1:显示
     */
    private Integer hideChildrenMenu;

    /**
     * 菜单扩展配置
     */
    private String extConfig;

    /**
     * 菜单排序
     */
    private Integer sort;

    /**
     * 子节点
     */
    private List<ITreeNode> children;

    @Override
    public Object getId() {
        return id;
    }

    @Override
    public Object getParentId() {
        return parentId;
    }

    @Override
    public boolean isBuild() {
        return isBuild;
    }

    @Override
    public void setBuild(boolean isBuild) {
        this.isBuild = isBuild;
    }

    @Override
    public List<? extends ITreeNode> getChildren() {
        return children;
    }

    @Override
    public void addChildren(ITreeNode node) {
        children.add(node);
    }

    @Override
    public Boolean isRoot() {
        return parentId == -1L;
    }
}
